Muszę opakować wszystkie wystąpienia% {...%} tagiem ... , chyba że% {...} pojawia się w tagu HTML. Na przykład to: „Lub% {register_text} dla nowego konta, klikając tutaj .” musi się tym stać „Lub % {register_text} dla nowego konta, klikając tutaj .” moje obecne wyrażenie regularne nie uwzględnia sytuacji ze znacznikiem HTML: x.gsub (/ [? !] / i) {| s | „ # {s} "} więc zastanawiam się, jak to zrobić w Rubim za pomocą wyrażenia regularnego. Jacyś chętni?
2020-12-22 09:45:57
Nie jestem pewien co do przestrzeni wejściowej, więc jest to najlepsze, co mogę wymyślić. Po drodze poprawiam też nieco wyrażenie regularne. /% \ {[\ w -] + \} (?! [^ <>]>) / W przypadku dobrze sformułowanego kodu HTML będzie pasować tylko do tokenów znajdujących się poza tagiem. Jeśli HTML jest źle sformułowany, nie sądzę, żebym sprostał zadaniu, aby napisać wyrażenie regularne. Zakładam również, że na stronie nie ma osadzonego JavaScript, ponieważ> i